<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

<script>
// 
var peoples = [
  {
    sex: '男',
    name: '小明'
  },
  {
    sex: '男',
    name: '小张'
  },
  {
    sex: '女',
    name: '小红'
  },
  {
    sex: '男',
    name: '小李'
  },
];
// ------------- some 相关 ----------------
// 需求：peoples 当中，有没有 女生？
// var hasFemale = true;

var hasFemale = peoples.some(function(person) {
  console.log(person);
  return person.sex === '女'; // 
});

/* arr.some(callback): boolean
  some 的回调函数，其返回值，
    1- 有一个为「真」，则剩下的回调函数，立即停止执行；其 some() 的返回值为 `true`
    2- 所有回掉函数的返回值，都为「假」；some() 的返回值为 `false`。


  其特性和 `或 ||` 一致：
  peoples[0] || peoples[1] || peoples[2] ...
*/


// hasFemale ? alert('有女生') : alert('没有女生');



// -------------------------------------------

// ------------- every 相关 ----------------
// 需求 peoples 是不是都是男生

/* arr.every(callback) 其逻辑与 some 正好相反
  some 为 `||`
  every 为 `&&`

*/

var isAllMale = peoples.every(function(person) {
  return person.sex === '男';
});

console.log(isAllMale);
</script>